package normalObjects;

/**
 * @author 26029
 * @date 2025/4/8
 * @description
 */
public class LearnString {
    public static void main(String[] args) {
        // 直接在字符串常量池中创建字符串（如果已经存在，则直接返回已有的引用）
        String s1 = "abc";
        // 在堆中创建String对象，这个String对象指向字符串常量池中的"abc"
        String s2 = new String("abc");
        // false，s1指向常量池的"abc"，s2指向堆中的String对象
        System.out.println(s1 == s2);
        // true，它们的值都是abc
        System.out.println(s1.equals(s2));
        // 若要把s2引用指向常量池，使用intern
        s2 = s2.intern();
        // true 现在它们都指向常量池的"abc"
        System.out.println(s1 == s2);

        // 对此 五星上将ChatGPT感慨道：
        // "abc" 字面量诞生于天上，万物共享；
        // new String("abc") 生于人间，孑然独立。
        // 若要省心省力，随风而行；若要执着深情，重塑轮回。
    }
}
